package com.niiwoo.civet.mobile.vo.response.myloan;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Getter
@Setter
@ApiModel
public class BackToArticleByDayResponseVO {

    @ApiModelProperty(value = "应收款年月,如201709",  required = true)
    private String yearMouth;

    @ApiModelProperty(value = "一月总金额",  required = true)
    private BigDecimal januaryTotalAmount ;

    @ApiModelProperty(value = "三月总金额",  required = true)
    private BigDecimal marchTotalAmount;

    @ApiModelProperty(value = "半年总金额",  required = true)
    private BigDecimal halfYearTotalAmount;

    @ApiModelProperty(value = "全部总金额",  required = true)
    private BigDecimal allTotalAmount;

    @ApiModelProperty(value = "待收本息总额",  required = true)
    private BigDecimal dueInTotalAmount;

    @ApiModelProperty(value = "待收总笔数",  required = true)
    private Integer dueInTotalNumber;

    @ApiModelProperty(value = "待收总本金",  required = true)
    private BigDecimal dueInTotalCapital;

    @ApiModelProperty(value = "待收总利息",  required = true)
    private BigDecimal dueInTotalInterest;

    @ApiModelProperty(value = "待收总奖励",  required = true)
    private BigDecimal dueInTotalReward;

    @ApiModelProperty(value = "近期回款总金额",  required = true)
    private BigDecimal recentReceivableTotal;

    @ApiModelProperty(value = "近期回款日",  required = true)
    private Date recentPaybackDate;

    @ApiModelProperty(value = "近期回款笔数",  required = true)
    private Integer recentReceivableNumber;

    @ApiModelProperty(value = "还款详情",  required = true)
    private List<BackToArticleDetails> details;

    @Getter
    @Setter
    @ApiModel
    public static class BackToArticleDetails{

        @ApiModelProperty(value = "标的ID", required = true)
        private Long projectId;

        @ApiModelProperty(value = "应收款日期,如20170909(PC应收款日期)",  required = true)
        private Date receivedDate;

        @ApiModelProperty(value = "应收款日期,如09",  required = true)
        private String dateNumStr;

        @ApiModelProperty(value = "应收款日期,如201709",  required = true)
        private String mouthNumStr;

        @ApiModelProperty(value = "当日总本金",  required = true)
        private BigDecimal totalCapital;

        @ApiModelProperty(value = "当日总利息",  required = true)
        private BigDecimal totalInterest;

        @ApiModelProperty(value = "当日总奖励",  required = true)
        private BigDecimal totalReward;

        @ApiModelProperty(value = "预计回款金额",  required = true)
        private BigDecimal expectReceivableAmount;

        @ApiModelProperty(value = "当日回款笔数",  required = true)
        private Integer receivableNumber;

    }
}
